package com.service;

import java.util.List;

import com.model.Article;
import com.model.ArticleComment;
import com.model.Tag;
import com.util.Page;

public interface ArticleService {

	Page findPageByUserId(int uid, int page, int pageSize);

	Page findPageByUserIdPublic(int uid, int page, int pageSize);

	List<Article> findCollectPageByUserId(int uid, int page, int pageSize);

	List<Tag> findArticleTags(int articleId);

	Article findArticleById(int id);

	Article findArticleByIdWithUser(int id);

	Article addArticle(Article article, List<String> tagNames);

	void addComment(int aid, int uid, String comment);

	int deleteArticle(int articleId);

	int addArticleTag(int articleId, String tagName);

	void setPublic(int articleId);

	void setPrivate(int articleId);

	String favorArticle(int articleId, int userId);

	String agreeArticle(int articleId, int userId);

	String disagreeArticle(int articleId, int userId);

	String collectArticle(int articleId, int userId);

	String cancelCollectArticle(int targetId, int userId);

	List<ArticleComment> findCommentsByPage(int articleId, int page, int pageSize);

	void doCommentAction(int targetId, String action);

	List findNewArticleTopN(int topN);

	List findHotArticleTopN(int topN);

}
